<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Horario_lst( $this );

	class Horario_lst extends Lst
	{
	function Horario_lst( &$oModule )
		{
			$this->Lst( $oModule );
		}
	function initialize()
		{
			$this->setTitle ( "Horario" );
			$this->setSummary( "Esta tabla contiene los horarios del personal" );
			$this->addColumn ( 'Nombre', '', 'cApellido' );
			$this->addColumnDate ( 'Ingreso', 'dIngreso' );
			$this->addColumn ( 'Horario', '', 'nEntrada' );
			$this->addColumn ( 'Declarado', '' );
			$this->addColumn ( 'Motivo', '' );
			$this->oHora = new timeObject();
			$this->setColumnAction ( 'Nombre', VER_PERSONA, 'ncPersona');
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'Nombre':
				$cReturn = $aRow['cNombre'] ;
				if ( $aRow['cAlias'] ) $cReturn .= " ( " . $aRow['cAlias']  . " )";
				$cReturn .= ' ' . $aRow['cApellido'] ;
				break;
			case 'Horario':
				$cReturn = "";
				$this->oHora->setValue ( $aRow['nEntrada'] );
				if ( $aRow['nEntrada'] ) $cReturn = $this->oHora->getDescription() ;
				$this->oHora->setValue ( $aRow['nSalida'] );
				if ( $aRow['nSalida'] ) $cReturn .=  ' - ' . $this->oHora->getDescription();
				break;
			case 'Motivo':
				if ( $aRow['cdMotivoEntrada'] || $aRow['cdMotivoSalida']  )
				{
					$cReturn = $aRow['cdMotivoEntrada'] ." - " . $aRow['cdMotivoSalida'];
				}
				break;
			case 'Declarado':
				$cReturn = "";
				if ( $aRow['nEntradaDeclarada'] || $aRow['nSalidaDeclarada'] )
				{
					$this->oHora->setValue ( $aRow['nEntradaDeclarada'] );
					if ( $aRow['nEntradaDeclarada'] ) $cReturn = $this->oHora->getDescription() ;
					else
						{
							$this->oHora->setValue ( $aRow['nEntrada'] );
							if ( $aRow['nEntrada'] ) $cReturn = $this->oHora->getDescription() ;
						}
					$this->oHora->setValue ( $aRow['nSalidaDeclarada'] );
					if ( $aRow['nSalidaDeclarada'] ) $cReturn .=  ' - ' . $this->oHora->getDescription();
					else
						{
							$this->oHora->setValue ( $aRow['nSalida'] );
							if ( $aRow['nSalida'] ) $cReturn .= ' - ' . $this->oHora->getDescription() ;
						}
				}
				break;
				default:
					return false;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Per.ncPersona, Per.cApellido, Per.cNombre, PHo.dIngreso, PHo.nEntrada, PHo.nSalida, PHo.nEntradaDeclarada, PHo.nSalidaDeclarada, MoE.cdMotivoHorario as cdMotivoEntrada, MoS.cdMotivoHorario as cdMotivoSalida
												FROM atPersona as Per
												JOIN atPersonalHorario as PHo
													ON PHo.ncPersona = Per.ncPersona
												LEFT JOIN acMotivoHorario as MoE
													ON MoE.ncMotivoHorario = PHo.ncMotivoEntrada
												LEFT JOIN acMotivoHorario as MoS
													ON MoS.ncMotivoHorario = PHo.ncMotivoSalida";
			// Arma el Filtro de la Consulta
				$oFiltro = $this->oModule->loadClass( 'Horario_frm' );
				$this->oWhere->addArray ( $oFiltro->getFilterdArray()  , 'PHo');
				$cdPersona = $this->aFields[cdPersona];
				$nTipo = $this->aFields[nTipo];
				if ( $nTipo == 1 ) $this->oWhere->addNotNull( "PHo.nEntrada" );
				if ( $nTipo == 2 ) $this->oWhere->addNotNull( "PHo.nSalida" );
				if ( $cdPersona ) $this->oWhere->addExpression ( "cdPersona", " cApellido LIKE '%$cdPersona%' OR cNombre LIKE '%$cdPersona%' "  );
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$cParametroRegistro =  $this->getFieldString();
			if ( $this->aFields['nTipo'] && $this->aFields['dIngreso']  )
			{
				$this->addListAction ( AGREGAR_PLANILLA_DIARIA_DE_HORARIOS, $cParametroRegistro, 'I' );
			} else
			{
				$this->addListAction ( AGREGAR_HORARIO, $cParametroRegistro, 'I', VENTANA_SECUNDARIA );
			}
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncPersona=" . $aRow["ncPersona"] . "&amp;dIngreso=" . $aRow["dIngreso"];
			$this->addRowAction ( MODIFICAR_HORARIO, $cParametroRegistro , '', VENTANA_SECUNDARIA);
			$this->addRowAction ( ELIMINAR_HORARIO, $cParametroRegistro);
		}
	}
?>
